$(function () {
    var currentPage = 1; //当前页数
    var pageSize = 5; //每页数据显示条数
    // 1.首页数据渲染
    function rander() {
        $.ajax({
            type: 'get',
            url: '/category/querySecondCategoryPaging',
            data: {
                page: currentPage,
                pageSize: pageSize
            },
            dataType: 'json',
            success: function (res) {
                // console.log(res);
                $('tbody').html(template('tmp', res))
                // 调用分液器函数,并转入数据库真实的数据个数
                setPage(res.total)
            }
        })
    }
    rander();
    // 2.生成分页器
    function setPage(total) {
        $("#paginator").bootstrapPaginator({
            bootstrapMajorVersion: 3,//默认是2，如果是bootstrap3版本，这个参数必填
            currentPage: currentPage,//当前页
            totalPages: Math.ceil(total / pageSize),//总页数
            size: "small",//设置控件的大小，mini, small, normal,large
            onPageClicked: function (event, originalEvent, type, page) {
                //为按钮绑定点击事件 page:当前点击的按钮值
                console.log(page);
                // 重新获取当前页数，改变当前页面取值
                currentPage = page;
                // 页面重新渲染
                rander();
            }
        });
    }
    // 3.一级下拉列表填充
    $.ajax({
        type: 'get',
        url: '/category/queryTopCategoryPaging',
        data: {
            page: 1,
            pageSize: 1000
        },
        dataType: 'json',
        success: function (res) {
            console.log(res);
            $('.cate-one-list').html(template('tmp-one-list', res))
        }
    })
    // 4.下拉列表选中效果
    // 点击下拉列表时：
    // 1.获取当前a标签文字，设置给按钮文本
    // 2.获取当前a标签的id设置给隐藏域，方便传递给后台数据
    $('.cate-one-list').on('click', 'a', function () {
        // console.log( $(this).text() );
        $('.btn-txt').text($(this).text());
        $('#categoryId').val($(this).parent().data('id'));

        // 7.1在下拉列表选中后，恢复下拉类别的校验状态
        $('#addform').data('bootstrapValidator').updateStatus('categoryId','VALID')
    })
    // 5.图片上传
    $('#file').fileupload({//文件服务器返回图片新手，如何进行处理
        dataType: "json",//服务器返回的数据如何进行解析
        // e：事件对象
        // data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
        // 类似 success:function(){}
        done: function (e, data) {
            console.log(data.result.picAddr);
            var url = data.result.picAddr;
            //图片预览
            $('#img').attr('src', url)
            //把图片地址存放到隐藏域中，将来传递给数据库
            $('#brandLogo').val(url)
            // 在图片上传完成后，恢复图片的校验状态
            $('#addform').data('bootstrapValidator').updateStatus('brandLogo', 'VALID');
        }
    })
    // 6.表单校验
    $('#addform').bootstrapValidator({
        //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
        excluded: [':disabled'],

        //2. 指定校验时的图标显示，默认是bootstrap风格
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },

        //3. 指定校验字段
        fields: {
            //校验用户名，对应name表单的name属性
            categoryId: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请选择一级分类'
                    }
                }
            },
            brandName: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请输入二级分类'
                    }
                }
            },
            brandLogo: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请上传图片'
                    }
                }
            },
        }
    })
    // 7- 手动恢复 下拉列表 和图片的校验状态


    // 8.添加二级分类
    $('#addform').on('success.form.bv', function (e) {
        // 阻止默认表单提交
        e.preventDefault();
        // ajax提交
        $.ajax({
            type: 'post',
            url: '/category/addSecondCategory',
            data: $('#addform').serialize(),
            dataType: 'json',
            success: function (res) {
                console.log(res);
                // 页面重新渲染
                rander();
                // 隐藏模态框
                $('.modal-add').modal('hide');
                // 表单重置
                $('#addform').data('bootstrapValidator').resetForm(true);
                // 手动恢复 图片和 按钮 文字
                $('.btn-txt').text('请选择一级分类')
                $('#img').attr('src','./images/none.png')
            }
        })
    })
})